USBASPI.SYS Panasonic(TM) USB to ASPI driver v2.06 and v2.15 Reference Rev 4.3 updated 8 Nov, 2004 by madmaxUSB =========== For a brief history on how I got to research on this very useful driver, check out http://www.computing.net/dos/wwwboard/forum/13447.html =========== Most people will tell you MS-DOS does NOT support USB connected devices. This is somewhat true, because USB was developed way after Microsoft(TM) had opted to discontinue DOS. However, there are special device drivers that allow USB connected mass storage devices to be mapped as ASPI devices which can subsequently be accessed by DOS - much the same way as SCSI devices. This document provides useful information on using a specific device driver in getting USB 2.0 mass storage devices (like hard disks, flash memory, optical drives) recognized in DOS. It is provided for troubleshooting and reference purposes only. =========== Description: Version : 2.06 Version : 2.15 File size : 37,903 bytes File size : 39,093 bytes Last modified : 27 Nov 2002 Last modified : 27 Oct 2003 Support UHCI/OHCI/EHCI controllers and are compatible with many of the USB implementations from major chipset manufacturers like INTEL, VIA, NVIDIA, SiS and NEC for integrated, onboard, PCI bus or CardBus USB2.0 ports. These drivers seem to be based on work done by Novac Co. Ltd. and Medialogic Corp. hence they generally have similiar options and good interoperability. Your boot OS determines what kind of partitions will be supported in your USB device. For FAT32 support, use the DOS boot disk for Windows 98 (MS-DOS 7.10) or the Windows ME Emergency Boot Disk (MS-DOS 8.00). You can add support for long file names using special drivers. Check out these site for relevant links - http://www.opus.co.tt/dave/utils.htm There are other USB 2.0 DOS drivers released on the web, but were found to have a number of limitations in terms of compatibility and configuration: 1. DATOptic's Speedzter supports USB 2.0 & Firewire - their DOS driver seems to be the next best driver in terms of compatibility and functionality. 2. Cypress(TM) DUSE (ver 4.4 & 4.9) are a unified driver that also supports USB 2.0 and offer many options but seems to have issues for I/O port address or Memory address settings - particularly a limit on the address space range. 3. Iomega(TM) USB & Firewire drivers also support USB2.0 (via ASPIEHCI.SYS) and is also used in Norton/Symantec GHOST but has limited compatibility. =========== Application: When used in conjunction with an ASPI Mass Storage Driver, it allows USB storage devices - particularly USB 2.0 hard disks or flash disks - to be accessible in DOS. This is particularly useful in drive cloning, partition resizing and image backup utlities that need to run in DOS mode (e.g. emergency disks for GHOST 2003, Partition Magic, etc...) Furthermore, with a USB CD-ROM Driver, it allows USB optical drives (DVD, CD-ROM) to be accessible in DOS when MSCDEX extensions are loaded. This makes it possible to install images or load Operating Systems onto newly formatted systems or replacement hard drives. Advantages over similiar drivers: 1. Support for USB 2.0 as well as USB 1.1 (Other USBASPI.sys versions are actually for USB 1.1 only) 2. Compatible with many USB chipset implementations, including Intel, NEC, VIA, NVidia and SIS 3. Automatically obtains configuration parameters from Motherboard PnP/ PCI BIOS to minimize difficulties with I/O, Mem and IRQ mapping ====================================================================== Please note that USB support in DOS is considered experimental! Most HW manufacturers DON'T provide support for their USB DOS drivers. ====================================================================== There are three standards compliant controllers in PC's. In Windows, Go to ControlPanel - System and (look under Hardware or DeviceManager to) examine the listed devices under Universal Serial Bus Controllers to determine the type of USB ports detected: USB 1.x UHCI (Universal Host Controller Interface) Intel, VIA USB 1.x OHCI (Open Host Controller Interface) Compaq, Microsoft and National Semiconductor USB 2.x EHCI (Enhanced Host Controller Interface) USB 1.x is the initial standard. USB Support started in Windows95B and onwards. USB 1.1 supports a theoretical maximum transfer rate of up to 12 Mbps. USB 2.0 is the current standard and supports a maximum transfer rate of up to 480 Mbps. Since 2.0 is a superset of 1.1, some devices are marketed as USB 2.0 compatible but cannot operate at full speeds. Here is a table on the speed ratings: USB Type Code Max. Transfer Rate High-Speed HS 480 Mbps Full-speed FS 12 Mbps Low-speed LS 1.5 Mbps Actual I/O throughput with current USB 2.0 external hard disks is limited by processor interconnect type, protocol overhead and USB bus connections. Reportedly, for USB 2.0 ports integrated on system board chipsets, 25 MB/sec is the practical throughput, while add-on USB 2.0 PCI cards can give up to 16MB /sec only. Notes: 1. For more reliable connections, avoid the use of USB hubs when connecting storage devices in DOS mode. 2. The driver does NOT support hot-plug connections. Do not disconnect/reconnect USB devices after USBASPI.SYS has been loaded, until the syste, is powered OFF. =========== Recommended Usage: > To detect your USB Mass storage device (.e.g. a USB 2.0 external hard drive) put this line in your boot diskette CONFIG.SYS file device=USBASPI.SYS /w /v =========== USBASPI.SYS Switches: Here are the known valid switches identified so far with the Panasonic(TM) v2.xx USBASPI.SYS driver in CONFIG.SYS device=[{path}]USBASPI.SYS [/e] [/o] [/u] [/v] [/w] [/r] [/l[#]] [/p=xxx0] [/f] [/slow] [/nocbc] [/norst] [/noprt] You can specify more than one controller type (e.g. /e /u). This switch can also be used to force slower speed operation on high-speed USB controllers & devices. The driver will scan for all types of USB controllers, so use these switches to specify which port types to enable. This allows for faster USB scanning. By specifying /u or /o and omitting /e, it forces Full-Speed mode on High-Speed devices. Note that you can't make a Low- or Full-Speed device run at High-Speed. /e EHCI, for enabling only USB 2.0 controller /o OHCI, for enabling only add-on/onboard USB 1.1 controller /u UHCI, for enabling integrated USB 1.1 controller In verbose mode. USBASPI displays details on controller type and USB devices it detects. It displays the vendor & product ID codes, the controller address range (memory map or I/O port map) of controllers, and the connection speed code for each device. /v Verbose, shows USB details - excellent troubleshooting tool These switches modify driver actions /w Wait, displays prompt message to allow swapping/attaching of target USB device /l# Luns, to specify highest number of LUN assigned, default /L0 /slow to enter SLOW down mode, gives longer delays when scanning USB devices /nocbc NO Card Bus Controller, to disable detection of USB on CardBus slots /norst NO ReSeT, to prevent the driver from resetting USB peripherals which have been initialized by BIOS (USB legacy support) such as keyboards and mice. This switch is typically used on portable systems with an external USB floppy drive connected to the single USB port for boot-up. Used in conjunction with RAMFD.SYS so after the boot floppy is copied to a RAM drive, (and after the /W pause...) the USB floppy can be removed, and the target mass storage device can be attached and detected /r Resident, allows driver to stay resident in memory when USB floppy drive is detected. This switch is used to specify the UHCI I/O address. Use this if the PnP BIOS does not assign an I/O address, where xxx0 is in hexadecimal format. /p=xxx0 There are a number of switches whose specific function is still unknown. Please post your discoveries in the USBMAN end-user forum, or the Computing.Net DOS forum. /noprt * Have found that on Intel systems (which have UHCI), using this switch causes the system to hang while detecting host controllers. Could it be related to I/O port? /f Depending on the system processor, USB 2.0 host interface, USB bridge chip and actual harddisk specs, actual throughput may vary. The following were reported in DOS mode GHOST 2003 using Local -> Check -> Disk option: 1. NEC based USB 2.0 PCI card - over 300 MB/min 2. Intel chipset USB 2.0 onboard ports - over 500 MB/min Differences in transfer rate may be due to sharing of PCI bus bandwidth and protocol overhead (on USB and PCI busses) vs. direct connection of a similiar device to a PC. Note: In case the driver reports an error "Cannot set memory mode I/O" please disable Legacy USB device support in system BIOS setup. =========== Download Source: The USBASPI.SYS driver is supplied for portable USB 2.0 drives from Panasonic and available in the Japanese market. Follow any of the links below to the manufacturer's self-extracting drivers: USBASPI v2.06 http://panasonic.co.jp/pcc/products/drive/cdrrw/kxlrw40an/driver/kxlrw40an.exe http://panasonic.co.jp/pcc/products/drive/cdrom/kxl840an/driver/kxl840an.exe http://panasonic.co.jp/pcc/products/drive/combi/kxlcb30an/driver/kxlcb30an.exe USBASPI v2.15 http://panasonic.co.jp/pcc/products/drive/other/driver/f2h_usb.exe http://panasonic.co.jp/pcc/products/drive/combi/kxlcb35an/driver/kxlcb35an.exe They are listed here sorted from smallest to largest size. USBASPI.SYS is extracted from the F2H subdirectory These are from CD-R/RW, CD-ROM and DVD+CD-R/RW products intended for the Japanese market, but work OK in English version DOS & Windows. Observed differences between the two driver versions: 1. Unlike v2.06, the newer v2.15 does not unload from memory if it does not find a USB mass storage device, consuming about 14KB in DOS. (-) 2. V2.15 seems to be able to initialize and scan for USB controllers, hosts and devices faster than v2.06. (+) 3. Performance is reported to be slightly better in v2.15 vs v2.06. (+) 4. However, v2.06 provides a much more informative verbose mode than v2.15 as you can tell where each USB1.x device is logically connected to. (-) Keep these in mind when choosing which driver to use in your DOS environment. =========== Other Useful Files: Here are some useful device drivers that complement USBASPI.SYS: From the same Panasonic driver file you downloaded to get USBASPI.SYS, in the F2H subdirectory are 2 other important drivers USBCD.SYS v1.00 from Panasonic, USB CD-ROM device driver RAMFD.SYS v1.01 or v1.02 from Panasonic, copies boot floppy disk contents into a RAM disk, write protects it, and remaps the floppy drive letter to the RAM disk. As USBASPI.SYS merely maps USB devices to an ASPI device, additional driver is needed to map the ASPI mass storage to a DOS drive letter. The famous "Motto Hairu" driver includes this important piece, and can be downloaded from: http://www.driver.novac.co.jp/driver/hd352u/hd352u_dos.zip [Note: If this link doesn't work, start at http://www.driver.novac.co.jp/driver/hd352u/hd352u_drv.html] UnZip the file to get these files (the latter has an english translation readme file) DI1000DD.SYS v2.00 from Novac, ASPI Mass Storage Device Driver {reportedly drive needs to be ATA66 or faster) ====================================================================== DI1000DD.SYS ASPI Disk Driver v2.00 from Novac Co., Ltd device=[{path}]DI1000DD.SYS [/hN] [/dL] If USBASPI.SYS detects multiple mass storage devices on multiple host adapters, use /hN Host, to specify which host adapter to map drive letter(s), where N would be the 3rd number set reported for the USB controller in USBASPI.SYS with the /v switch. To specify the starting drive letter for detected mass storage devices, use /dL Drive_letter, where L is the first assigned letter for this host adapter Example of use: If you want specify the "L" drive letter for a storage device, try: device[high]=[{path}]di1000dd.sys /dL ====================================================================== In case you have compatibility problems, there are some similiar drivers here http://www.datoptic.com/Drivers/DAT.exe This image file creates a bootable diskette that supports USB and firewire in DOS. Of relevance are these drivers: USBASPI.SYS v2.01 from Medialogic Corp, is very similiar but less-featured version than Panasonic's USBASPI.SYS. NJ32DISK.SYS v1.06 from Workbit Corp. is very similar to Novac's DI1000DD.SYS. SBP2ASPI.SYS v1.02 from Medialogic Corp provides ASPI mapping of Firewire storage devices. =========== Examples: > If the USB devices are already plugged upon power up and you want to enable only the high-speed USB controller and external hard disk drives, try device=USBASPI.SYS /e /v device=DI1000DD.SYS > If you have only a single USB port and no internal floppy, use this CONFIG.SYS combination: device=RAMFD.SYS device=USBASPI.SYS /w /v /r > If you have a notebook with a USB optical drive, install the ASPI CD-ROM device driver after loading USBASPI.SYS in CONFIG.SYS like this: device=USBASPI.SYS /w device=USBCD.SYS /d:USBCD001 and in AUTOEXEC.BAT: MSCDEX /d:USBCD001 > If you want to connect a USB 2.0 optical drive and a USB 2.0 external hard disk simultaneously, put these in the CONFIG.SYS file: device=USBASPI.SYS /e /w device=USBCD.SYS /d:USBCD001 device=DI1000DD.SYS and in AUTOEXEC.BAT: MSCDEX /d:USBCD001 > For troubleshooting USB connections, install all your devices and boot from your diskette with this in CONFIG.SYS: device=USBASPI.SYS /v =========== Troubleshooting Info: With the /v option, USBASPI.SYS provides a lot of useful info regarding the USB devices connected to a PC. Use this info to determine if a problem is in the hardware level, or a Windows driver/configuration issue. Example result for v2.06: Controller : 00-09-0 VID=1033h PID=0035h (3782h-0035h) OHCI : MEM=DF000000h-DF000FFFh(4KBytes) Controller : 00-09-1 VID=1033h PID=0035h (3782h-0035h) OHCI : MEM=DE800000h-DE800FFFh(4KBytes) Controller : 00-09-2 VID=1033h PID=00E0h (3782h-01E0h) EHCI : MEM=DE000000h-DE0000FFh(256Bytes) USB Device : HOST [00-09-2 VID=1033h PID=00E0h (3782h-01E0h) EHCI] : |-- VID=05ABh PID=0060h HS : |-- VID=05E3h PID=0702h HS : ^-- 2 device(s) USB Device : HOST [00-09-0 VID=1033h PID=0035h (3782h-0035h) OHCI] : ^-- nothing USB Device : HOST [00-09-1 VID=1033h PID=0035h (3782h-0035h) OHCI] : |-- VID=066Fh PID=4200h FS : ^-- nothing ASPI Device : ID:0 LUN:0 = IC25N010 ATDA04-0 0811 : ID:1 LUN:0 = E-IDE CD-ROM 48X/AKU T3A Example result for v2.15: Controller : 00-09-0 VID=1033h PID=0035h (3782h-0035h) OHCI : MEM=DF000000h-DF000FFFh(4KBytes) Controller : 00-09-1 VID=1033h PID=0035h (3782h-0035h) OHCI : MEM=DE800000h-DE800FFFh(4KBytes) Controller : 00-09-2 VID=1033h PID=00E0h (3782h-01E0h) EHCI : MEM=DE000000h-DE0000FFh(256Bytes) USB Device : VID=05ABh PID=0060h HS : VID=05E3h PID=0702h HS : VID=066Fh PID=4200h FS ASPI Device : ID:0 LUN:0 = IC25N010 ATDA04-0 0811 : ID:1 LUN:0 = E-IDE CD-ROM 48X/AKU T3A Interpretation: 1. There are 2 OHCI and 1 EHCI controllers detected. All are running in MEMory map mode (not I/O mapped) with the respective address spaces displayed. 2. Two devices are mapped to the EHCI controller. The HS indicates they are running at High Speed. 3. One device is mapped to the 2nd OHCI controller. The FS indicates runs at Full Speed only. ^-- nothing indicates no USB storage devices were found. 4. Two of the devices connected are detected as storage devices. Each is mapped to an ASPI ID, and it's identifier is displayed. 5. This config has an IBM 10GB notebook HD & a 48x EIDE CD-ROM drive. Notes: 1. The respective USB bridge/device can be identified by referring to the 2-byte Vendor ID and Product ID. 2. Most of the configuration is automatically obtained from BIOS PnP info. Unfortunately, USBASPI.SYS does not identify IRQ's used. =========== On the still unknown switches: /f - does NOT seem to be speed related (as in full-speed or fast device detection). Suspect it could be for "floppy" or "flash memory" devices ... /m=xx - in the older USBASPI.SYS v1.xx, is used to specify the OHCI memory map address but does NOT deem to work for v2.xx =========== Thank you to members of DarkeHorse, Computing.NET and USBMAN forums for sharing their experiences. :-)Thanks to: om4n@netscape.net for confirming /norst switch Daniel G. Gionco for /d switch info in DI1000DD.SYS =========== * All brands mentioned are TM of respective owners. Many products mentioned are (C) and require an appropriate end-user license. * BIOS Support for USB storage devices I have tested USB boot functionality on recent system boards using the AMIBIOS 7.0 core (http://www.ami.com/support/doc/amibiosdesktop.pdf). I believe the feature is also applicable to PhoenixBIOS 4.0 (http://www.phoenix.com/en/products/phoenix+cme+firstbios/system+firmware/products/phoenixbios.htm) The BIOS may offer one or more of the following options in its setup interface that affect USB: ? Enable/disable USB host controller ? Enable/disable legacy USB support ? Assign IRQ to USB host controller ? Monitor IRQ for APM events This text is taken from (https://www.codidirect.com/shop/thefactsbehindbootability.htm) " Modern BIOSes add support for USB in one form or another. The most basic support available is known as USB Legacy Device Support. This extension to the PC BIOS supports the use of a USB keyboard and mouse during the boot process. It simply means your keyboard and mouse will work as soon as the PC is turned on. Many modern BIOS also support, in a limited fashion, the ability to boot from a USB device. Support for this feature does not automatically mean you can boot from any USB device. It means you can boot from some USB devices. Currently, for most BIOS, this means a USB floppy drive. However, some BIOS that claim to support booting from a USB hard disk contain bugs that prevent them from doing so properly, and may require patches or upgrades. Some BIOS also support booting from a USB zip drive or CDROM but again this is an exception, not the rule. Support in the BIOS for booting from a USB device is accomplished through "IDE Emulation". IDE Emulation lets the BIOS scan the computer's USB ports looking for actual IDE devices or devices that look like (emulate) an IDE device. So, if a BIOS supports booting from a USB floppy drive, it will look for a real USB floppy drive or another device that can emulate the behavior of a USB floppy drive. " Note that for an OS/driver/application to take over a USB controller, it has to follow a specific protocol, as failure to do so could result in hanging. From my tests: 1. Generally, USBASPI.SYS is incompatible with systems where Legacy USB support is enabled if the Legacy mode enables IDE/floppy emulation. 2. When USB legacy is enabled and the USB storage is set as bootable, it becomes the 1st hard drive (C:). and the internal ATAPI drive becomes the 2nd hard drive (D:) 3. When USB legacy is enabled but not the boot device, USB storage is still mapped as a typical ATAPI drive in DOS mode. However, BIOS support seems to only allow USB 1.1 transfer rates until the OS loads a driver that properly takes over USB protocols. =0= Transfer rates of USB HD's USB 1.1 allows DOS file transfer rates of about 1.25 ~ 1.39 MB/sec. This is quite close to the theoretical 12Mbps limit. USB 2.0 allows DOS file transfer rates of about 3.3 ~ 6.5 MB/sec. This is only a fraction of the theoretical 480Mbps limit, and is attributed to current USB-IDE chips and DOS file handling limitations. (Tested using HD's with GL811 and ISD-300A1 bridge chips on i875P based USB2.0) HP has a nice utility available to initialize a USB Disk and make it bootable. The Windows GUI version HPUSBFW.exe supports FAT and NTFS, while the DOS CLI version HPUSBF.exe also supports FAT32. You will need the appropriate OS files to make it bootable as it contains only files for Win98 DOS boot for HP USB 2.0 drive keys only. Get it at: http://h18007.www1.hp.com/support/files/hpcpqdt/us/download/20306.html =========== Jason Baker also has a thread with batch code and file listings, detailing how he managed to boot directly to the pen drive, and ghost a machine at full USB 2.0 speed without using a floppy disk. http://www.computing.net/dos/wwwboard/forum/15205.html